package com.ajun.common.rabbit;

/**
 * 队列常量
 *
 * @author AJun
 * @date 2021-07-14
 */
public interface QueueConstants {

    /* 案例 */
    String ORDER_DISPATCH_FANOUT_EXCHANGE = "order.dispatch.fanout.exchange";
    String ORDER_DISPATCH_QUEUE = "order.dispatch.queue";

    /* 交换机 */
    /**
     * 消息分发交换机
     */
    String ORDER_FANOUT_EXCHANGE = "order.fanout.exchange";
    String ORDER_DIRECT_EXCHANGE = "order.direct.exchange";
    String ORDER_TOPIC_EXCHANGE = "order.topic.exchange";
    String ORDER_TTL_EXCHANGE = "order.ttl.exchange";
    String ORDER_TTL_MSG_EXCHANGE = "order.ttl.msg.exchange";
    String DLX_EXCHANGE = "dlx.exchange"; // 死信交换机
    String DLX_TEST_EXCHANGE = "dlx.test.exchange"; // 死信测试交换机

    /* 队列 */
    /**
     * SMS 队列
     */
    String SMS_FANOUT_QUEUE = "sms.fanout.queue";
    String SMS_DIRECT_QUEUE = "sms.direct.queue";
    String SMS_TOPIC_QUEUE = "sms.topic.queue";
    String SMS_TTL_QUEUE = "sms.ttl.queue";
    String SMS_TTL_MSG_QUEUE = "sms.ttl.msg.queue";

    /**
     * 邮件队列
     */
    String EMAIL_FANOUT_QUEUE = "email.fanout.queue";
    String EMAIL_DIRECT_QUEUE = "email.direct.queue";
    String EMAIL_TOPIC_QUEUE = "email.topic.queue";
    String EMAIL_TTL_QUEUE = "email.ttl.queue";
    String EMAIL_TTL_MSG_QUEUE = "email.ttl.msg.queue";

    /**
     * 短信队列
     */
    String NOTE_FANOUT_QUEUE = "note.fanout.queue";
    String NOTE_DIRECT_QUEUE = "note.direct.queue";
    String NOTE_TOPIC_QUEUE = "note.topic.queue";
    String NOTE_TTL_QUEUE = "note.ttl.queue";
    String NOTE_TTL_MSG_QUEUE = "note.ttl.msg.queue";

    /**
     * DLX: 死信队列
     */
    String DLX_QUEUE = "dlx.queue";
    String DLX_TEST_QUEUE = "dlx.test.queue";

    /* 绑定键 */
    /* direct */
    String EMAIL_DIRECT_KEY = "email.direct.key";
    String SMS_DIRECT_KEY = "sms.direct.key";
    String NOTE_DIRECT_KEY = "note.direct.key";
    /* topic */
    String EMAIL_TOPIC_KEY = "*.email.#";
    String SMS_TOPIC_KEY = "#.sms.#";
    String NOTE_TOPIC_KEY = "note.#";
    /* ttl queue */
    String EMAIL_TTL_KEY = "email.ttl.key";
    String SMS_TTL_KEY = "sms.ttl.key";
    String NOTE_TTL_KEY = "note.ttl.key";
    /* ttl message */
    String EMAIL_TTL_MSG_KEY = "email.ttl.msg.key";
    String SMS_TTL_MSG_KEY = "sms.ttl.msg.key";
    String NOTE_TTL_MSG_KEY = "note.ttl.msg.key";
    /* Dead Letter Exchange */
    String DLX_KEY = "dlx.key";
    String DLX_TEST_KEY = "dlx.test.key";
}
